package com.softtown.modules.workflow.service;

import com.softtown.common.service.BaseService;
import com.softtown.modules.workflow.dto.SwfNextAprvDefDTO;
import com.softtown.modules.workflow.entity.SwfNextAprvDefEntity;

/**
 * @author: Dingyayong
 * @Date: 2019/8/22 15:39
 * @Description:
 */
public interface SwfNextAprvDefService extends BaseService<SwfNextAprvDefEntity> {
    /**
     * 出差申请获取下一审批人默认值
     *
     * @param
     * @return
     * @author Dingyayong
     * @date 2019/8/22 17:03
     */
    SwfNextAprvDefEntity getNextAprvt(Long userId, Long compId);

    /**
     * 差旅报销申请申请获取下一审批人默认值
     *
     * @param
     * @return
     * @author Dingyayong
     * @date 2019/8/22 17:03
     */
    SwfNextAprvDefEntity getExpenseNextAprvt(SwfNextAprvDefDTO swfNextAprvDefDTO);

    /**
     * 获取下一审批人默认值
     *
     * @param
     * @return
     * @author Dingyayong
     * @date 2019/8/22 17:03
     */
    SwfNextAprvDefEntity getAllNextAprvt(SwfNextAprvDefDTO swfNextAprvDefDTO);

    /**
     * 差旅报销申请申请获取下一审批人默认值
     *
     * @param
     * @return
     * @author Dingyayong
     * @date 2019/8/22 17:03
     */
    SwfNextAprvDefEntity getExpenseNextAprvtUp(Long userId, Long compId);

    /**
     * 更新
     *
     * @param
     * @return
     * @author Dingyayong
     * @date 2019/8/22 17:03
     */
    void updateSwfNextAprvDef(SwfNextAprvDefEntity swfNextAprvDefEntity);

    /**
     * 借款申请获取下一审批人默认值
     *
     * @param userId
     * @param compId
     * @return com.softtown.modules.entity.SwfNextAprvDefEntity
     * @author fuming
     * @date 2019/10/29 13:15
     */
    SwfNextAprvDefEntity getAdvNextAprv(Long userId, Long compId);


    /**
     * 根据类型获取下一审批人默认值
     *
     * @param
     * @return
     * @author Dingyayong
     * @date 2019/8/22 17:03
     */
    SwfNextAprvDefEntity getNextAprvtByDocType(Long userId, Long compId, String docType);

    /**
     * 获取下一个审批人的上一审批人段终审值
     *
     * @param swfNextAprvDefDTO 下一审批默认值DTO
     * @return java.lang.Integer
     * @Author fuming
     * @Date 2020/3/4 17:09
     */
    Integer selectIsPhaseLastAprv(SwfNextAprvDefDTO swfNextAprvDefDTO);

}
